package com.zhengshang.api.service;

import com.zhengshang.common.pay.wxpay.ResultMap;

import java.util.Map;

/**
 * 微信支付服务接口
 */
public interface WxPayService {

    /**
     * @Description: 微信支付统一下单
     * @param orderNo: 订单编号
     * @param amount: 实际支付金额（单位：分）
     * @param body: 订单描述
     * @param userId: 用户ID
     * @return
     */
    Map<String, String> unifiedOrder(String orderNo, String amount, String body, long userId) ;

    /**
     * @Description: 订单查询
     * @param orderNo: 订单编号
     * @return
     */
    boolean orderQuery(String orderNo);

    /**
     * @Description: 订单支付异步通知
     * @param notifyStr: 微信异步通知消息字符串
     * @return
     */
    Map<String, String> notify(String notifyStr) throws Exception;

    /**
     * @Description: 退款
     * @param orderNo: 订单编号
     * @param amount: 实际支付金额
     * @param refundReason: 退款原因
     * @return
     */
    ResultMap refund(String orderNo, double amount, String refundReason) throws Exception;

    /**
     * @Description: 关闭订单
     * @param orderNo: 订单编号
     * @return
     */
    boolean closeOrder(String orderNo) throws Exception;

}
